package com.zjj.learn.javaplus.pkg01.demo14;

/**
 * 课后作业
 * 一：概念题
 * 1、什么叫做类与类的继承，作用是什么？
 * 自答：当两个类中有一些共有属性和方法时，可以将共同部分抽取出来形成资格父类，子类继承自父类就可以使用父类中的属性或者方法了。
 * 可以提高代码的复用性，减少重复代码的编写。
 * 标答：
 * 继承:是指在现有类的基础上定义一个新的类,现有类称为父类,新的类称为子类
 * 继承的作用:子类会自动拥有父类的可继承的内容
 * 2、请写出继承的格式
 * 自答： B extend A {} ；A 是父类，B 是子类
 * 3、请写出继承的特点
 * 自答：不知道
 * 标答：
 * 1.Java只支持单继承
 * 2.一个类可以有多个子类
 * 3.Java支持多层继承
 * <p>
 * <p>
 * 二：语法联系
 * 使用集成定义以下的类：
 * 程序员(Coder)
 * 成员变量: 姓名,年龄
 * 成员方法: 吃饭,睡觉,敲代码
 * <p>
 * 老师(Teacher)
 * 成员变量: 姓名,年龄
 * 成员方法: 吃饭,睡觉,上课
 * <p>
 * 将程序员和老师中相同的内容(姓名,年龄,吃饭,睡觉)抽取到父类Person中
 * 编程实现下面结果：
 * <p>
 * 马化腾吃饭
 * 马化腾睡觉
 * 马化腾敲代码
 * ***************
 * 马云吃饭
 * 马云睡觉
 * 马云上课
 * 答案如下：
 * {@link com.zjj.learn.javaplus.pkg01.demo14.Person}
 * {@link com.zjj.learn.javaplus.pkg01.demo14.Programmer}
 * {@link ,com.zjj.learn.javaplus.pkg01.demo14.Teacher}
 * <p>
 * 三：语法联系
 * 请使用继承定义以下类:
 * 狗(Dog)
 * 成员变量: 姓名,颜色,价格
 * 成员方法: 吃饭,看家
 * <p>
 * 猫(Cat)
 * 成员变量: 姓名,颜色,价格
 * 成员方法: 吃饭,抓老鼠
 * <p>
 * 将狗和猫相同的内容(姓名,颜色,价格,吃饭)抽取到父类Animal中
 * 编程实现下面结果：
 * <p>
 * 旺财在吃饭
 * 旺财狗看家
 * -----------
 * 波斯猫在吃饭
 * 波斯猫猫在抓老鼠
 * 解答：
 * {@link com.zjj.learn.javaplus.pkg01.demo14.Animal}
 * {@link com.zjj.learn.javaplus.pkg01.demo14.Cat}
 * {@link com.zjj.learn.javaplus.pkg01.demo14.Dog}
 * <p>
 * 四：语法联系
 * * 编写步骤：
 * 1. 写一个标准的华为手机类(HWPhone)
 * 2. 手机属性有: 型号(type),价格(price),颜色(color) ,及静态的品牌(brand)
 * 3. 手机行为有: 打电话(call)
 * 4. 写手机测试类(PhoneTest)
 * 5. 创建手机对象,并设置手机的属性
 * <p>
 * 6. 打印手机对象的品牌,型号,价格和颜色
 * 7. 调用手机打电话方法
 * d答案：{@link com.zjj.learn.javaplus.pkg01.demo14.HWPhone}
 * 五：语法练习
 * {@link com.zjj.learn.javaplus.pkg01.demo14.Teacher2}
 * and {@link com.zjj.learn.javaplus.pkg01.demo14.Student}
 **/
public class TestDemo04 {

    public static void main(String[] args) {
        //二：语法联系答案
        Programmer programmer = new Programmer("马化腾", 46);
        programmer.eat();
        programmer.sleep();
        programmer.program();

        System.out.println("***************");
        Teacher teacher = new Teacher("马云", 50);
        teacher.eat();
        teacher.sleep();
        teacher.teach();


        System.out.println("=============问题三=======================");
        Dog dog = new Dog("旺财", "黄色", 2000.00);
        dog.eat();
        dog.kanJia();
        System.out.println("-----------");
        Cat cat = new Cat("波斯", "黑色", 1500.25);
        cat.eat();
        cat.zhuaLaoShu();


        System.out.println("============问题四=====================");
        HWPhone hwPhone = new HWPhone("p30", 3999.0, "奶奶灰");
        System.out.println(HWPhone.getBrand() + "，" + hwPhone.getType() + "，" + hwPhone.getPrice() + "，" + hwPhone.getColor());
        hwPhone.call();


        System.out.println("==========问题五======================");
        Teacher2 teacher2 = new Teacher2("王小平", 30, "Java");
        Student student = new Student("李小乐", 16, 90);
        teacher2.teach();
        student.exam();
    }
}
